package com.uujava.minibox.gui;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

import com.mxcyk.plug.notbook.*;
import com.uujava.minibox.config.Config;
import com.uujava.minibox.gui.CenterTablePanel;
import com.uujava.minibox.gui.Line;
import com.uujava.minibox.ui.combobox.DiskComboBox;
/**
 * 功能：创建中部框架
 * 
 * @param westPath
 *            中部列表的左边应用列表的路径
 * @param path
 *            中部列表的三个应用列表的路径字符串数组
 * @param name
 *            三个列表的名称
 * @author k 日期：2012-8-8
 */
public class Center extends JPanel implements ActionListener {
	private static final long serialVersionUID = 1L;
	public JSplitPane jsp = null;// 拆分窗格
	JPanel jpMainList = null;// 主应用列表的容器（为 BorderLayout())布局
	CenterTablePanel showapplist = null;// 主应用列表
	Notbook notbook = null;// 记事本应用
	DiskComboBox drivelist = null;// 搜索与磁盘访问
	Line lineWest = null;// 左应用列表

	/**
	 * 功能：创建中部框架
	 * 
	 * @param westPath
	 *            中部列表的左边应用列表的路径
	 * @param path
	 *            中部列表的三个应用列表的路径字符串数组
	 * @param name
	 *            三个列表的名称
	 */
	public Center(String westPath, String[] path, String[] name) {
		this.setLayout(new BorderLayout());

		// ==========================中=====================================
		notbook = new Notbook();

		lineWest = new Line(westPath, Line.Y_AXIS, 1, 10, 20, 20);// 左部应用列表
		lineWest.setOpaque(true);
		// lineWest.setBackImage("/Skins/BackgroundL2.png");//设置背景图片

		showapplist = new CenterTablePanel(name, path);
		drivelist = new DiskComboBox(1, 5, Config.SEARCH_URL,
				"/images/bookmark_tab_icon.png", 26, 26);// 初始化搜索
		drivelist.setDefaultOpenURL(Config.DEFAULT_OPEN_URL);// 在无搜索内容时默认访问的url
		jpMainList = new JPanel(new BorderLayout());// 设置主应用列表容器为边界布局
		jpMainList.add(drivelist, BorderLayout.NORTH);// 搜索下拉列表

		jpMainList.add(showapplist, BorderLayout.CENTER);// 设置应用列表
		jpMainList.setMinimumSize(new Dimension());// 设置最小大小为0
		notbook.setMinimumSize(new Dimension());// 设置最小大小为0

		jsp = jsp(notbook, jpMainList);

		this.add(lineWest, BorderLayout.WEST);
		this.add(jsp, BorderLayout.CENTER);

	}

	/**
	 * 创建设置好的JSplitPane
	 * 
	 * @param jpWest
	 *            左边的容器
	 * @param jpEast
	 *            右边的容器
	 * @return JSplitPane
	 */
	private JSplitPane jsp(JPanel jpWest, JPanel jpEast) {
		jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jpWest, jpEast); // 拆分窗体
		jsp.setDividerSize(7);// 分隔条的大小
		// System.out.println(jsp.getDividerSize());//返回分隔条的大小。
		jsp.setDividerLocation(0.0);// 分隔条的位置为 JSplitPane 大小的一个百分比
		jsp.setOneTouchExpandable(true);// 可以收缩
		// jsp.setEnabled(false);//设置分隔条禁止拖动

		jsp.setLastDividerLocation(800);// 将分隔条所处的最后位置

		/*
		 * //为frame窗口添加监听器，实现保持面板两部分的比例 this.addComponentListener(new
		 * ComponentAdapter() { public void componentResized(ComponentEvent e) {
		 * jsp.setDividerLocation(0.0); System.out.println(jsp.getWidth()); }
		 * });
		 */

		return jsp;
	}

	public static void main(String[] args) {
		JFrame jf = new JFrame();
		String Path = System.getProperty("user.dir");// 获得当前路径
		String westPath = Config.PLUGINS + "左";
		String[] path = {Config.APPLY + "常用应用", Config.APPLY + "游戏",
				Config.APPLY + "桌面"};
		String[] name = {"常用应用", "游戏", "桌面"};

		Center mf = new Center(westPath, path, name);

		jf.add(mf);
		jf.setSize(250, 600);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jf.setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub

	}

}
